﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using Clases;
using Clases.Clases;
using Clases.ClasesPersistentes;
using Clases.Estructuras;

namespace Clases.Gestores
{
     public class GestorSesion
    {
        private static Usuario _usuario = null;
        private static Boolean _sesionIniciada = false;

        public static Boolean iniciarSesion(String pusuario, String pcontrasenna)
        {
            Boolean sesionIniciada = false;

            String contrasennaCifrada = encriptar(pcontrasenna);
            DaoUsuario dao = new DaoUsuario();
            Usuario tmpUsuario = dao.buscarUsuarioSesion(pusuario, contrasennaCifrada);

            if (!tmpUsuario.Equals(""))
            {
                sesionIniciada = true;
                setInicioSesion(sesionIniciada);
                /*Usuario usuario = new Usuario(
                    tmpUsuario.nombre,
                    tmpUsuario.apellido1,
                    tmpUsuario.apellido2,
                    tmpUsuario.cedula,
                    tmpUsuario.telefono,
                    tmpUsuario.contrasenna,
                    tmpUsuario.telefono
                   );
                setUsuario(usuario);*/
            }

            return sesionIniciada;
        }

        private static void setInicioSesion(bool psesionIniciada)
        {
            _sesionIniciada = psesionIniciada;
        }

        private static void setUsuario(Usuario varUsuario)
        {
            _usuario = varUsuario;
        }

        public static Boolean usuarioTienePermiso(String permiso)
        {

            return false;
        }

        private static string encriptar(string pcontrasenna)
        {
            SHA1CryptoServiceProvider elProveedor = new SHA1CryptoServiceProvider();
            byte[] vectoBytes = System.Text.Encoding.UTF8.GetBytes(pcontrasenna);
            byte[] inArray = elProveedor.ComputeHash(vectoBytes);
            elProveedor.Clear();
            return Convert.ToBase64String(inArray);
        }

    }
}
